package cn.com.zero.front.auth.mapper;

import cn.com.zero.common.auth.security.po.AuthUserPO;
import cn.com.zero.front.auth.po.AuthUserInfoPO;
import cn.com.zero.front.auth.po.UserInfoPO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

/**
 * @author liuxh
 * @version 1.0.0
 * @Description 用户信息mapper
 * @createTime 2023/4/4 11:31
 */
@Repository
@Mapper
public interface IUserMapper {

    /**
     * 查询用户登录详细信息
     *
     * @param userId 用户ID
     * @return 用户登录详细信息
     */
    AuthUserInfoPO getAuthUserInfoById(@Param("userId") String userId);

    /**
     * 修改用户信息
     *
     * @param modifyUserInfo 更改的用户信息
     */
    void modifyUserInfo(UserInfoPO modifyUserInfo);

    /**
     * 依据手机号或用户名查询用户
     *
     * @param userName 手机号密文 或 用户名
     * @return 用户
     */
    AuthUserPO getUserByNameOrMobile(String userName);

    /**
     * 查询用户注销申请数据条数
     *
     * @param userId 用户ID
     * @return 数据条数
     */
    int queryUserCancellationApply(@Param("userId") String userId);

    /**
     * 添加注销申请
     *
     * @param userId    用户DI
     * @param phone     紧急手机号（密文）
     * @param showPhone 紧急手机号（展示用）
     */
    void insertCancelApply(@Param("userId") String userId, @Param("phone") String phone, @Param("showPhone") String showPhone);
}
